package com.itany.corejava.code08_集合.map集合;

import java.util.HashMap;
import java.util.Map;

/**
 * @author MissChen
 * @date 2024年03月05日 14:49
 */
public class Test01_HashMap {
    public static void main(String[] args) {
        test02();
    }
    public static void test01(){

        //定义一个使用默认容量16和默认加载因子0.75的HashMap
        HashMap<Integer,String> map=new HashMap<>();

        //定义一个使用定义初始容量10和默认加载因子0.75的HashMap
        HashMap<Integer,String> map2=new HashMap<>(10);

        // 定义一个使用定义初始容量10和默认加载因子0.6的HashMap
        Map<String,Integer> map3=new HashMap<>(10,0.6f);

        //将另一个HashMap转换为指定HashMap
        HashMap<Integer,String> map4=new HashMap<>(map);

    }
    public static void test02(){
        HashMap<Integer,String> map=new HashMap<>();

        // put(key,value)添加操作，参数是由2部分组成：键key与值value
        map.put(1,"admin");
        map.put(2,"alice");

        //key具有唯一性，如果key重复了，则覆盖原有数据，相当于修改
        map.put(1,"jack");
        map.put(3,"coco");


        // 理论上来说，key与value都可以为null,实际开发中不建议出现
        map.put(null,null);
        System.out.println(map);

        // get(key)：查询
        System.out.println("key为1的元素："+map.get(1));
        System.out.println("key为2的元素："+map.get(2));

        //remove(key)根据key删除元素
        map.remove(2);
        System.out.println(map);

        //containsKey(key):判断集合中是否包含指定key的数据
        System.out.println(map.containsKey(1));
        System.out.println(map.containsKey(2));

        // containsValue(value) 判断集合中是否包含指定value的数据
        System.out.println(map.containsValue("jack"));
        System.out.println(map.containsValue("coco"));

        // isEmpty() 判断集合是否为空
        System.out.println(map.isEmpty());
        Map<String,String> map2=new HashMap<>(10);
        System.out.println(map2.isEmpty());

        // size() 返回集合中元素的数量
        System.out.println(map.size());

        // 清空集合
        map.clear();
        System.out.println("集合是否为空："+map.isEmpty());

    }
}
